﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Упр)
	///</summary>
	[DataContract]
	public enum ВидыСобытий
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"c11ba1c0-837e-44b6-853e-9746735c65ea\", \"Представление\":\"ТелефонныйЗвонок\"}")]
		ТелефонныйЗвонок = 0,//Телефонный звонок
		[EnumMember(Value = "{\"Ссылка\":\"8dc7e6ee-cbb6-430e-98f4-951bfd64bd55\", \"Представление\":\"ЛичнаяВстреча\"}")]
		ЛичнаяВстреча = 1,//Личная встреча
		[EnumMember(Value = "{\"Ссылка\":\"9885d671-7d4a-43ed-bb5e-eff6103c39e0\", \"Представление\":\"ЭлектронноеПисьмо\"}")]
		ЭлектронноеПисьмо = 2,//Электронное письмо
		[EnumMember(Value = "{\"Ссылка\":\"d5013f5f-d1f9-4dea-bf87-e8b5a20952bb\", \"Представление\":\"ПочтовоеПисьмо\"}")]
		ПочтовоеПисьмо = 3,//Почтовое письмо
		[EnumMember(Value = "{\"Ссылка\":\"69539f23-6b47-4763-8531-ad85e6fec357\", \"Представление\":\"Прочее\"}")]
		Прочее = 4,
	}
	public static partial class ВидыСобытий_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ТелефонныйЗвонок = new Guid("46973e85-5c73-ea65-44b6-837ec11ba1c0");//Телефонный звонок
		public static readonly Guid ЛичнаяВстреча = new Guid("1b95f498-64fd-55bd-430e-cbb68dc7e6ee");//Личная встреча
		public static readonly Guid ЭлектронноеПисьмо = new Guid("f6ef5ebb-3c10-e039-43ed-7d4a9885d671");//Электронное письмо
		public static readonly Guid ПочтовоеПисьмо = new Guid("b5e887bf-09a2-bb52-4dea-d1f9d5013f5f");//Почтовое письмо
		public static readonly Guid Прочее = new Guid("85ad3185-fee6-57c3-4763-6b4769539f23");
		public static ВидыСобытий Получить(this ВидыСобытий Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыСобытий Получить(this ВидыСобытий Значение, Guid Ссылка)
		{
			if(Ссылка == ТелефонныйЗвонок)
			{
				return ВидыСобытий.ТелефонныйЗвонок;
			}
			else if(Ссылка == ЛичнаяВстреча)
			{
				return ВидыСобытий.ЛичнаяВстреча;
			}
			else if(Ссылка == ЭлектронноеПисьмо)
			{
				return ВидыСобытий.ЭлектронноеПисьмо;
			}
			else if(Ссылка == ПочтовоеПисьмо)
			{
				return ВидыСобытий.ПочтовоеПисьмо;
			}
			else if(Ссылка == Прочее)
			{
				return ВидыСобытий.Прочее;
			}
			return ВидыСобытий.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыСобытий Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыСобытий Значение)
		{
			switch (Значение)
			{
				case ВидыСобытий.ТелефонныйЗвонок: return ТелефонныйЗвонок;
				case ВидыСобытий.ЛичнаяВстреча: return ЛичнаяВстреча;
				case ВидыСобытий.ЭлектронноеПисьмо: return ЭлектронноеПисьмо;
				case ВидыСобытий.ПочтовоеПисьмо: return ПочтовоеПисьмо;
				case ВидыСобытий.Прочее: return Прочее;
			}
			return Guid.Empty;
		}
	}
}